//Source file: D:\\test\\com\\ce\\pms\\charge\\model\\CharStaChoDomain.java

package com.ce.pms.charge.model;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.ce.pms.common.model.SysInfo;
import com.ce.pms.house.model.HouseDomain;
import com.ce.pms.house.model.MeterDomain;
import com.sitechasia.webx.core.model.IDomainObject;

/**
 * 实体名称:收费标准选用 关联数据表:FEE_CHAR_STA_CHO
 */
@Entity
@Table(name = "FEE_CHRG_STA_CHO")
public class CharStaChoDomain implements IDomainObject{

	/**
	 * 主键
	 */
	@Id
	@GeneratedValue
	@Column(name = "CHRG_STA_CHO_ID")
	private Long keyword;

	/**
	 * 房屋
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "HOUSE_ID",nullable=false)
	private HouseDomain house;

	/**
	 * 收费项目
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CHARGE_ITEM_ID")
	private ChargeItemDomain chargeItem;

	/**
	 * 收费标准
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CHARGE_STA_ID")
	private ChargeStaDomain chargeSta;

	/**
	 * 开始时间:针对收费项目类型是"固定类"的,需要设定本项,其他不必填写.
	 */
	@Column(name = "START_TIME")
	private Date startTime;

	/**
	 * 结束时间:针对收费项目类型是"固定类"的,需要设定本项,其他不必填写.
	 */
	@Column(name = "END_TIME")
	private Date endTime;

	/**
	 * 走表:针对收费项目是"走表类"的,需要设定本项目,其他不必设定.
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "METER_ID")
	private MeterDomain meter;

	/**
	 * 收费金额(常规/固定)
	 */
	@Column(name = "CHARGE_AMT" ,precision = 18 , scale= 2)
	private BigDecimal chargeAmt = new BigDecimal("0.00");

	@Embedded
	private SysInfo sysInfo;

	/**
	 * @roseuid 48757D120203
	 */
	public CharStaChoDomain() {

	}

	public CharStaChoDomain(HouseDomain house, SysInfo sysInfo) {
		super();
		this.house = house;
		this.sysInfo = sysInfo;
	}

	public ChargeItemDomain getChargeItem() {
		return chargeItem;
	}

	public void setChargeItem(ChargeItemDomain chargeItem) {
		this.chargeItem = chargeItem;
	}

	public ChargeStaDomain getChargeSta() {
		return chargeSta;
	}

	public void setChargeSta(ChargeStaDomain chargeSta) {
		this.chargeSta = chargeSta;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public HouseDomain getHouse() {
		return house;
	}

	public void setHouse(HouseDomain house) {
		this.house = house;
	}

	public Long getKeyword() {
		return keyword;
	}

	public void setKeyword(Long keyword) {
		this.keyword = keyword;
	}

	public MeterDomain getMeter() {
		return meter;
	}

	public void setMeter(MeterDomain meter) {
		this.meter = meter;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public SysInfo getSysInfo() {
		return sysInfo;
	}

	public void setSysInfo(SysInfo sysInfo) {
		this.sysInfo = sysInfo;
	}

	public BigDecimal getChargeAmt() {
		return chargeAmt;
	}

	public void setChargeAmt(BigDecimal chargeAmt) {
		this.chargeAmt = chargeAmt;
	}



}
